﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _2C.Framework.BaseUtility.Helper
{
    //public class SrtHelper
    //{


    //    /// <summary>
    //    /// 读取文件中的内容到mySrtModelList列表
    //    /// </summary>
    //    /// <param name="srtPath">srt文件路径</param>
    //    /// <returns></returns>
    //    public List<SrtModel> ParseSrt(string srtPath)
    //    {
    //        List<SrtModel> mySrtModelList = new List<SrtModel>();

    //        //string samiContent = File.ReadAllText(srtPath);

    //        //// 使用正则表达式匹配字幕内容
    //        //MatchCollection matches = Regex.Matches(samiContent, @"<SYNC Start=(\d+)>(.*?)<SYNC Start=\d+>|<SYNC Start=(\d+)>(.*?)</BODY>");

    //        //foreach (Match match in matches)
    //        //{
    //        //    // 获取开始时间（以毫秒为单位）
    //        //    int startTime = match.Groups[1].Success ? int.Parse(match.Groups[1].Value) : int.Parse(match.Groups[3].Value);

    //        //    // 转换开始时间为 TimeSpan
    //        //    TimeSpan timeSpan = TimeSpan.FromMilliseconds(startTime);

    //        //    // 获取匹配到的文本
    //        //    string subtitleText = match.Groups[2].Success ? match.Groups[2].Value : match.Groups[4].Value;

    //        //    // 输出开始时间和字幕文本
    //        //    Console.WriteLine($"开始时间: {timeSpan}, 字幕文本: {subtitleText.Trim()}");
    //        //}
    //        string line;
    //        using (FileStream fs = new FileStream(srtPath, FileMode.Open))
    //        {
    //            using (StreamReader sr = new StreamReader(fs, Encoding.UTF8))
    //            {
    //                StringBuilder sb = new StringBuilder();
    //                while ((line = sr.ReadLine()) != null)
    //                {
    //                    if (!line.Equals(""))
    //                    {
    //                        sb.Append(line).Append("@");
    //                        continue;
    //                    }

    //                    string[] parseStrs = sb.ToString().Split('@');
    //                    if (parseStrs.Length < 3)
    //                    {
    //                        sb.Remove(0, sb.Length);// 清空，否则影响下一个字幕元素的解析</i>
    //                        continue;
    //                    }

    //                    SrtModel srt = new SrtModel();

    //                    string[] parts = parseStrs[1].Split(new string[] { " --> " }, StringSplitOptions.None);

    //                    srt.BeginTime = DateTime.ParseExact(parts[0].Split(',')[0], "HH:mm:ss", null);
    //                    srt.EndTime = DateTime.ParseExact(parts[1].Split(',')[0], "HH:mm:ss", null);
    //                    parts = parseStrs[3].Split('>')[1].Split('-');
    //                    srt.LineName = parts[0];
    //                    srt.LineDirection = parts[1];
    //                    srt.StationName = parseStrs[4].Split(':')[1];
    //                    srt.Pole = parseStrs[5].Split(':')[1];
    //                    srt.Km = parseStrs[6].Split(':')[1];
    //                    srt.Speed = parseStrs[7].Split(':')[1];
    //                    srt.GatherTime = parseStrs[8].Split('<')[0];
    //                    mySrtModelList.Add(srt);
    //                    sb.Remove(0, sb.Length);
    //                    //srt.StationName = parts[2];
    //                    //srt.LineName = parseStrs[3].

    //                    //string strBody = null;
    //                    //for (int i = 3; i < parseStrs.Length; i++)
    //                    //{
    //                    //    strBody += parseStrs[i];
    //                    //}
    //                    //srt.SrtString = strBody;
    //                    //mySrtModelList.Add(srt);
    //                    // sb.Remove(0, sb.Length);
    //                }
    //            }
    //        }
    
    //        return mySrtModelList;
    //    }
    //}
    //public class SrtModel
    //{
    //    public DateTime BeginTime { get; set; }
    //    public DateTime EndTime { get; set; }
    //    public string LineName { get; set; }
    //    public string LineDirection { get; set; }
    //    public string StationName { get; set; }
    //    public string Km { get; set; }
    //    public string Speed { get; set; }
    //    public string Pole { get; set; }
    //    public string GatherTime { get; set; }
    //    public int Index { get; set; }
    //}
}
